# 字典：字典可以提供基于Key检索Value的场景实现，字典是可变的，是无序映射数据结构，而不是有序的元素序列，且以键值对为一个元素的形式存放数据。{'key':'value'}
# 特点：
# 1：用{}来表示字典类型，键和值之间使用冒号分隔，两个相邻元素(键值对)用逗号分隔
# 2：通过键而不是索引读取，不是序列类型，没有下标的概念
# 3：字典是任意对象的无序可变集合
# 4：字典中的键可以是字典外的任意类型但必须唯一且不可变,如果存在重复的键，后者会覆盖前者，值可以是任意的类型
dictA={"pro":'艺术','shcool':'北京电影学院'}#无数据可创建空字典{}或dict()
dictA['name']='李易峰'#键不存在则向字典中添加新元素(如果键存在则会将原有的键对应的值修改)
dictA['age']=30
dictA['pos']='歌手'
print(dictA)
print(len(dictA))#返回容器中的项目数(字典长度)
print(dictA['name'])#通过键获取对应的值
dictA['name']='谢霆锋'#修改键对应的值
dictA['shcool']='香港大学'
print(dictA)
#获取所有的键
print(dictA.keys())#直接对字典进行for循环，也可以获取键
#获取所有的值
print(dictA.values())
#获取所有的键和值
print(dictA.items())#该方法可以获取键值对列表
for item in dictA.items():#遍历字典
    print(item)
for key,value in dictA.items():
    print('%s==%s'%(key,value))
dictA.update({'age':'32'})#该方法也可以添加或更新(修改)元素
print(dictA)
dictA.update({'height':'1.80'})
print(dictA)
print(dictA.get('shcool', 6))#如果key在字典中，则返回key的值，否则返回默认值
# 删除操作
del dictA['name']
print(dictA)
dictA.pop('age')#根据键删除指定键值对元素，并返回键对应的值让你能够接着使用它
print(dictA)
# 如果排序 按照key排序
print(sorted(dictA.items(), key=lambda d: d[0]))
# 按照value排序
print(sorted(dictA.items(), key=lambda d: d[1]))
print(len(dictA))#len函数可以返回容器中的元素个数
dictA.clear()#清空字典内容
print(dictA)
